A variety of cryptographic security techniques have been developed to protect private information. These include both symmetric and asymmetric key encryption techniques. Secret keys are used in both of these methods. As such, protecting secret keys is paramount to controlling access to private information.
In devices that process encrypted information, a separate hardware security module ensures that secret keys and other information is not accessible by the applications executed by a device's main processor. In some devices, information is protected by a hardware security module that is incorporated into a cryptographic co-processor separate from the main processor. Alternatively, the information may be protected stored in a dedicated area in memory accessible by a separate data bus that physically and/or functionally isolates the memory area from a device's main processor.
For example, U.S. Patent Application Publication No. 2008/0016349 discloses an apparatus having secret information embedded in a nonvolatile memory. The nonvolatile memory is isolated such that access to the information is limited to a fixed state custom logic block. This block has hardware configured to use a hidden number and other information to provide an output that is a function of the hidden number and that can be used to confirm an identity of a device without revealing the secret information.
In addition, U.S. Patent Application Publication No. 2008/0181399 discloses a composite hardware security module and cryptographic accelerator device. The hardware security module generates and securely stores cryptographic keys. The cryptographic keys generated are managed entirely within the composite device. Once generated, cryptographic keys may be stored either within the device or outside the device in an encrypted form. A master key, which is used to encrypt the cryptographic keys before exporting them out of the device, remains in the device at all times and is isolated on a separate data bus. Clear text versions of the cryptographic keys are not accessible outside of the device.